#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define pb push_back
#define mp make_pair
const int maxn = 1e5+10;
const int mod = 1e9+7;
const int INF = 0x3f3f3f3f;
int d[4][2]={1,0,0,1,-1,0,0,-1};
int n;
ll a,b,c;
string s[maxn];
int main() {
    ios::sync_with_stdio(0);
    #ifdef Uncle_drew
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
    #else
    #endif
    string ans;
    cin>>n>>a>>b>>c;
    for(int i=0;i<n;i++) cin>>s[i];
    for(int i=0;i<n;i++){
//    	if (a==1&&b==1){
//			if (s[i+1]=="BC"){
//    			a--,b++,ans+="B\n";
//			}
//			else{
//    			b--,a++,ans+="A\n";
//			}
//			continue;
//		}
//		if (a==1&&c==1){
//			if (s[i+1]=="BC"){
//    			a--,c++,ans+="C\n";
//			}
//			else{
//    			c--,a++,ans+="A\n";
//			}
//			continue;
//		}
//		if (b==1&&c==1){
//			if (s[i+1]=="AC"){
//    			b--,c++,ans+="C\n";
//			}
//			else{
//    			c--,b++,ans+="B\n";
//			}
//			continue;
//		}
        if(s[i]=="AB"){
	        if (a==1&&b==1){
				if (s[i+1]=="BC"){
	    			a--,b++,ans+="B\n";
				}
				else{
	    			b--,a++,ans+="A\n";
				}
				continue;
			}
            if(a>b) a--,b++,ans+="B\n";
            else b--,a++,ans+="A\n";
        }
        if(s[i]=="AC"){
        	if (a==1&&c==1){
				if (s[i+1]=="BC"){
	    			a--,c++,ans+="C\n";
				}
				else{
	    			c--,a++,ans+="A\n";
				}
				continue;
			}
            if(a>c) a--,c++,ans+="C\n";
            else c--,a++,ans+="A\n";
        }
        if(s[i]=="BC"){
	        if (b==1&&c==1){
				if (s[i+1]=="AC"){
	    			b--,c++,ans+="C\n";
				}
				else{
	    			c--,b++,ans+="B\n";
				}
				continue;
			}
            if(c>b) c--,b++,ans+="B\n";
            else b--,c++,ans+="C\n";
        }
        if(a<0||b<0||c<0){
            cout<<"No";
            return 0;
        }
    }
    cout<<"Yes\n"<<ans<<endl;
    return 0;
}
